package com.example.dilidili_ting.utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;

import static android.content.Context.MODE_PRIVATE;

public class SharedPreferencesUtilsTing {
    /**
    从SharedPreferences中读取登录用户名
    */
    public static String readLoginUserName(Context context){
        SharedPreferences sp=context.getSharedPreferences("loginInfo", MODE_PRIVATE);
        String userName=sp.getString("loginUserName","");
        return userName;
    }

    /**
     从SharedPreferences中读取用户id
     */
    public static String readLoginUserID(Context context){
        SharedPreferences sp=context.getSharedPreferences("loginInfo", MODE_PRIVATE);
        String userId=sp.getString("userId", "");
        return userId;
    }

    /**
     *清除SharedPreferences中的登录状态和登录时的用户名
     * */
    public static void clearLoginStatus(Context context){
        SharedPreferences sp=context.getSharedPreferences("loginInfo", Context.MODE_PRIVATE);//定义sp对象并与loginInfo.xml文件关联
        SharedPreferences.Editor editor=sp.edit(); //获取编辑器
        editor.putBoolean("isLogin",false);//清除用户登录状态
        editor.putString("loginUserName",""); //清除用户登录名称
        editor.commit();//提交修改
    }

    /**
     从SharedPreferences中读取登录状态
     */
    public static boolean readLoginStatus(Context context){
        SharedPreferences sp=context.getSharedPreferences("loginInfo", MODE_PRIVATE);
        boolean isLogin=sp.getBoolean("isLogin",false);
        return isLogin;
    }

    /**
     读取系统保存的用户密码
     从SharedPreferences中根据用户名读取密码
     */
    public static String readPsw(Context context, String userName){
        SharedPreferences sp=context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        return sp.getString(userName,"");  //读取用户的密码
    }

    /**
     保存登录状态和登录用户名到SharedPreferences中
     */
    public static void saveLoginStatus(Context context,boolean status,String userName){
        //loginInfo表示文件名
        SharedPreferences sp=context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        SharedPreferences.Editor editor=sp.edit(); //获取编辑器
        editor.putBoolean("isLogin",status); //存入boolean类型的登录状态
        editor.putString("loginUserName",userName); //存入登录状态时的用户名
        editor.commit(); //提交修改
    }


    /**
     保存账号和密码到SharedPreferences中
     */
    public static void saveRegisterInfo(Context context,String userName,String psw){
        //loginInfo表示文件名
        SharedPreferences sp=context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        SharedPreferences.Editor editor=sp.edit();//获取编辑器
        //以用户名为key，密码为value保存SharedPreferences中
        editor.putString(userName,psw);
        editor.commit();//提交修改
    }

    public static void saveUserId(Context context,String userId){
        //loginInfo表示文件名
        SharedPreferences sp=context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        SharedPreferences.Editor editor=sp.edit();//获取编辑器
        //以用户名为key，密码为value保存SharedPreferences中
        editor.putString("userId",userId);
        editor.commit();//提交修改
    }

    /**
     保存初始化的密码
     */
    public static void savePsw(Context context,String userName) {
        String psw = "123456"; //初始密码
        SharedPreferences sp = context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();//获取编辑器
        editor.putString(userName,psw);
        editor.commit();//提交修改
    }

    /**
     从SharedPreferences中根据用户输入的用户列表来判断是否有此用户
     */
    public static boolean isExistUserName(Context context, String userName){
        boolean hasUserName = false;
        SharedPreferences sp = context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        String spPsw = sp.getString(userName,"");
        if(!TextUtils.isEmpty(spPsw)){
            hasUserName = true;
        }
        return hasUserName;
    }

    /**
     从SharedPreferences读取密保
     */
    public static String readSecurity(Context context, String userName){
        SharedPreferences sp = context.getSharedPreferences("loginInfo", Context.MODE_PRIVATE);
        String security = sp.getString(userName+"_security","");
        return security;
    }

    /**
     * 修改用户保存在SharedPreferences中的密码
     * */
    public static void editPsw(Context context,String newPsw,String tinguserName){
        SharedPreferences sp=context.getSharedPreferences("loginInfo",MODE_PRIVATE);
        SharedPreferences.Editor editor=sp.edit(); //获取编辑器
        editor.putString(tinguserName,newPsw); //保存新密码
        editor.commit();//提交修改
    }

    /**
     * 将用户密保存到SharedPreferences中
     */
    public static void saveSecurity(Context context, String validateName) {
        //loginInfo表示文件名
        SharedPreferences sp = context.getSharedPreferences("loginInfo", MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();//获取编辑器
        //存入账号对应的密保
        editor.putString(readLoginUserName(context) + "_security", validateName);
        editor.commit();//提交修改
    }

}
